package scales.xml.serializers
import scales.utils._
import scales.xml.{DocLike, QName, XmlVersion}
import scala.collection.immutable.{ Stack, Map }
import java.io.Writer
import java.nio.charset.Charset
trait SerializeableXml[T] {
def doc(it: T): DocLike
def apply(it: T)(out: XmlOutput, serializer: Serializer): (XmlOutput, Option[Throwable])
}
case class XmlOutput(data: SerializerData,
currentMappings: Stack[Map[String, String]] = Stack[Map[String, String]]().push(
Map[String, String]() + ("" -> "")
), path: List[QName] = List())(implicit serializerFI: SerializerFactory) {
implicit val serializerF = serializerFI
}
case class WriteTo[T : SerializeableXml](it: T, version: Option[XmlVersion] = None, encoding: Option[Charset] = None){
def writeWith(it : T = it, version: Option[XmlVersion] = None, encoding: Option[Charset] = None) = copy(it, version, encoding)
def writeTo(output : Writer)(implicit serializerFI: SerializerFactory) = scales.xml.writeTo(it, output, version, encoding)
}
case class NamespaceContext( mappings : Map[String, String], declMap : Map[String, String], addDefault : Option[String] )
<iframe src="https://scalesxml.github.io/scales-xml_2.10/0.5.0/api.sxr/scales/xml/serializers/XmlPrinterTypes.scala.html" width="1280" height="720" frameborder="0"> </iframe>